-- *****************************************************************
-- Juniper-SDX-GW-MIB
--
-- Juniper Networks Inc.
-- Service Deployment System (SDX) MIB
-- GateWay
--
Juniper-SDX-GW-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY,
    OBJECT-TYPE,
    Integer32,
    Counter32,
    Gauge32,
    IpAddress,
    TimeTicks
        FROM SNMPv2-SMI

    DisplayString
        FROM SNMPv2-TC

    SnmpAdminString
        FROM SNMP-FRAMEWORK-MIB

    MODULE-COMPLIANCE,
    OBJECT-GROUP
        FROM SNMPv2-CONF

    juniSdxMibs
        FROM Juniper-SDX-MIBS
        
    JuniNicHostRedundStateType,
    JuniNicAgentTypeType,
    JuniNicAgentDSConnStatusType
        FROM Juniper-SDX-TC-MIB;
        
juniSdxGwMib MODULE-IDENTITY
    LAST-UPDATED "200410061345Z"  -- 06-Oct-04

    ORGANIZATION "Juniper Networks, Inc."
    CONTACT-INFO
        "        Juniper Technical Assistance Center
                 Juniper Networks, Inc.
                 1194 N. Mathilda Avenue
                 Sunnyvale, CA 94089
                 E-mail: support@juniper.net"

    DESCRIPTION
        "MIB of the SDX Gateway"

    REVISION
    "200410061345Z"   -- 06-Oct-04
    DESCRIPTION
    "Adding nic host mib"
    ::= { juniSdxMibs 7 }

juniSdxMgmtInterface OBJECT IDENTIFIER ::= { juniSdxGwMib 1 }

-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
--
-- SDX NIC Host Tables
-- 
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

juniSdxNicHost OBJECT IDENTIFIER ::= { juniSdxMgmtInterface 1 }

-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
--   
-- NIC HOST MI Table
--  
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    juniNicHostTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF JuniNicHostEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "Table of NIC Host MI-derived entries."
        ::= { juniSdxNicHost 1 }

    juniNicHostEntry OBJECT-TYPE
        SYNTAX      JuniNicHostEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "An entry describing attributes of a NIC host. This table has one index:
             juniNicHostIndex."
        INDEX   { juniNicHostIndex }
        ::= { juniNicHostTable 1 }
    
    JuniNicHostEntry::= SEQUENCE {
        juniNicHostIndex                Integer32,
        juniNicHostUptime               TimeTicks,
        juniNicHostAddr                 IpAddress,
        juniNicHostThreads              Gauge32,
        juniNicHostHeapLimit            Integer32,
        juniNicHostHeapUsed             Gauge32,
        juniNicHostCompRestarts         Counter32,
        juniNicHostCompRestartTime      TimeTicks, 
        juniNicHostResolutions          Counter32,
        juniNicHostUnmatchedResolutions Counter32,
        juniNicHostResolutionErrors     Counter32,
        juniNicHostResolutionTime       TimeTicks,
        juniNicHostNotifs               Counter32,
        juniNicHostDataItemsInNotif     Counter32,
        juniNicHostPulls                Counter32,
        juniNicHostRedundState          JuniNicHostRedundStateType,
        juniNicHostRedundElections      Counter32,
        juniNicHostRedundStateSwitches   Counter32,
        juniNicHostRedundLastSwitch     TimeTicks
    }

    juniNicHostIndex OBJECT-TYPE
        SYNTAX          Integer32 (0..1000)
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
            "A unique number identifying a row in the table."
        ::= { juniNicHostEntry 1 }

    juniNicHostUptime OBJECT-TYPE
        SYNTAX      TimeTicks
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
        "The time (in hundredths of a second) since the NIC Host 
         was last started."
        ::= { juniNicHostEntry 2 }

    juniNicHostAddr OBJECT-TYPE
        SYNTAX          IpAddress
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "The IP address the NIC Host listens on."
        ::= { juniNicHostEntry 3 }

    juniNicHostThreads OBJECT-TYPE
        SYNTAX          Gauge32
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "The number of Java threads that currently exist inside
             this NIC Host's Java virtual machine."        
        ::= { juniNicHostEntry 4 }

    juniNicHostHeapLimit OBJECT-TYPE
        SYNTAX      Integer32
        UNITS       "kilobytes"
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
             "The maximum memory (in kilobytes) available for use by this 
              NIC Host's JVM."
        ::= { juniNicHostEntry 5 }

    juniNicHostHeapUsed OBJECT-TYPE
        SYNTAX      Gauge32
        UNITS       "kilobytes"
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The amount of used heap space out of the total allocated by
             the JVM."
        ::= { juniNicHostEntry 6 }

    juniNicHostCompRestarts OBJECT-TYPE
        SYNTAX          Counter32
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "The number of component restarts."
        ::= { juniNicHostEntry 7 }

    juniNicHostCompRestartTime OBJECT-TYPE
        SYNTAX      TimeTicks
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
        "The time (in hundredths of a second) since the last time a component
         was restarted."
        ::= { juniNicHostEntry 8 }

    juniNicHostResolutions OBJECT-TYPE
        SYNTAX          Counter32
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "The number of resolutions that have been done during the life of 
             this NIC Host."
        ::= { juniNicHostEntry 9 }

    juniNicHostUnmatchedResolutions OBJECT-TYPE
        SYNTAX          Counter32
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "The number of unmatched resolutions that have been received during 
             the life of this NIC Host."
        ::= { juniNicHostEntry 10 }
    
    juniNicHostResolutionErrors OBJECT-TYPE
        SYNTAX          Counter32
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "The number of resolutions that failed due to an error during 
             the life of this NIC Host."
        ::= { juniNicHostEntry 11 }

    juniNicHostResolutionTime OBJECT-TYPE
        SYNTAX          TimeTicks
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "The total time (in hundredths of a second) used on resolutions during
             the life of this NIC Host."
        ::= { juniNicHostEntry 12 }

    juniNicHostNotifs OBJECT-TYPE
        SYNTAX          Counter32
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "The number of notifications that have been received during the life
             of this NIC Host."
        ::= { juniNicHostEntry 13 }

    juniNicHostDataItemsInNotif OBJECT-TYPE
        SYNTAX          Counter32
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "The total number of data items received with notifications during 
             the life of this NIC Host."
        ::= { juniNicHostEntry 14 }

    juniNicHostPulls OBJECT-TYPE
        SYNTAX          Counter32
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "The number of pulls that have been performed during the life of
             this NIC Host."
        ::= { juniNicHostEntry 15 }

    juniNicHostRedundState OBJECT-TYPE
        SYNTAX          JuniNicHostRedundStateType
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "The redundancy state of this NIC Host."
        ::= { juniNicHostEntry 16 }

    juniNicHostRedundElections OBJECT-TYPE
        SYNTAX          Counter32
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "The number of elections that have been performed during the life 
             of this NIC Host."
        ::= { juniNicHostEntry 17 }

    juniNicHostRedundStateSwitches OBJECT-TYPE
        SYNTAX          Counter32
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "The number of times this host switched from active to passive
             or vice versa during the life of this NIC Host."
        ::= { juniNicHostEntry 18 }

    juniNicHostRedundLastSwitch OBJECT-TYPE
        SYNTAX          TimeTicks
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "The time (in hundredths of a second) since the last time that this
             NIC Host switched redundancy state."
        ::= { juniNicHostEntry 19 }
 
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
--   
-- NIC HOST Resolver Table
--  
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    juniNicReslvTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF JuniNicReslvEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "Table of an instance of a NIC resolver."
        ::= { juniSdxNicHost 2 }

    juniNicReslvEntry OBJECT-TYPE
        SYNTAX      JuniNicReslvEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "An entry describing attributes of a NIC resolver. This table
            has one index: juniNicReslvIndex."
        INDEX   { juniNicReslvIndex }
        ::= { juniNicReslvTable 1 }
    
    JuniNicReslvEntry ::= SEQUENCE {
        juniNicReslvIndex               Integer32,
        juniNicReslvName                SnmpAdminString,
        juniNicReslvSize                Gauge32,
        juniNicReslvDataSources         Gauge32
    }

    juniNicReslvIndex OBJECT-TYPE
        SYNTAX          Integer32 (0..1000)
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
            "A unique number identifying a row in the juniNicReslvTable."
        ::= { juniNicReslvEntry 1 }

    juniNicReslvName OBJECT-TYPE
        SYNTAX          SnmpAdminString
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "The name of the NIC resolver."
        ::= { juniNicReslvEntry 2 }

    juniNicReslvSize OBJECT-TYPE
        SYNTAX          Gauge32
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "The number of keys stored in this resolver. Based on the resolver
             type it represents either the size of the set of network data for
             this resolver or the size of the mapping between different network
             data types that this resolver stores.
             
             For example, for ipToIpPool resolver resolver size represents the
             set of ip pools for all virtual routers discovered by the system,
             for poolToVr resolver it represents the size of the mapping from ip
             pools to virtual routers in which those pools are configured, for
             VrSaeId resolver it represents the size of the mapping from virtual
             router names to SAE ids managing these VRs."

        ::= { juniNicReslvEntry 3 }

    juniNicReslvDataSources OBJECT-TYPE
        SYNTAX          Gauge32
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "The number of agents or forwarders currently connected to this
             resolver. A NIC agent is responsible for collecting state
             information from network data sources (such as SAEs, Radius Servers,
             etc) and communicating it to the NIC resolvers to aid in the
             resolution process."
        ::= { juniNicReslvEntry 4 }

-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
--   
-- NIC Agent Table
--  
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    juniNicAgentTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF JuniNicAgentEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "Table of an instance of a NIC agent."
        ::= { juniSdxNicHost 3 }

    juniNicAgentEntry OBJECT-TYPE
        SYNTAX      JuniNicAgentEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "An entry describing attributes of a NIC agent. This table has one index:
             juniNicAgentIndex."
        INDEX   { juniNicAgentIndex }
        ::= { juniNicAgentTable 1 }
    
    JuniNicAgentEntry ::= SEQUENCE {
        juniNicAgentIndex               Integer32,
        juniNicAgentName                SnmpAdminString,
        juniNicAgentType                JuniNicAgentTypeType,
        juniNicAgentDataSize            Gauge32,
        juniNicAgentDSConnStatus        JuniNicAgentDSConnStatusType
    }

    juniNicAgentIndex OBJECT-TYPE
        SYNTAX          Integer32 (0..1000)
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
            "A unique number identifying a row in the juniNicAgentTable."
        ::= { juniNicAgentEntry 1 }
 
    juniNicAgentName OBJECT-TYPE
        SYNTAX          SnmpAdminString
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "The name of the NIC agent."
        ::= { juniNicAgentEntry 2 }

    juniNicAgentType OBJECT-TYPE
        SYNTAX          JuniNicAgentTypeType
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "The type of the NIC agent."
        ::= { juniNicAgentEntry 3 }

    juniNicAgentDataSize OBJECT-TYPE
        SYNTAX          Gauge32
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "The size of NIC Agent data. For example for PoolVr and VrSaeId
             Directory Agents the size of the agent data is the total number of
             virtual routers loaded from directory by the NIC system."
        ::= { juniNicAgentEntry 4 }

    juniNicAgentDSConnStatus OBJECT-TYPE
        SYNTAX          JuniNicAgentDSConnStatusType
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "The connection status to data source from this NIC Agent."
        ::= { juniNicAgentEntry 5 }

-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
--
-- Conformance information
--
-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

juniSdxGwCompliances OBJECT IDENTIFIER ::= { juniSdxGwMib 2 }
juniSdxGwGroups      OBJECT IDENTIFIER ::= { juniSdxGwMib 3 }

-- compliance statements

juniSdxGwCompliance MODULE-COMPLIANCE
        STATUS  current
        DESCRIPTION
                "The compliance statement for entities which implement
                the SDX MIB."
        MODULE  -- this module
                MANDATORY-GROUPS { juniSdxGwGroup }
        ::= { juniSdxGwCompliances 1 }

juniSdxGwGroup OBJECT-GROUP
    OBJECTS {
        juniNicHostUptime,
        juniNicHostAddr,
        juniNicHostThreads,
        juniNicHostHeapLimit,
        juniNicHostHeapUsed,
        juniNicHostCompRestarts,
        juniNicHostCompRestartTime, 
        juniNicHostResolutions,
        juniNicHostUnmatchedResolutions,
        juniNicHostResolutionErrors,
        juniNicHostResolutionTime,
        juniNicHostNotifs,
        juniNicHostDataItemsInNotif,
        juniNicHostPulls,
        juniNicHostRedundState,
        juniNicHostRedundElections,
        juniNicHostRedundStateSwitches,
        juniNicHostRedundLastSwitch,

        juniNicReslvName,
        juniNicReslvSize,
        juniNicReslvDataSources,

        juniNicAgentName,
        juniNicAgentType,
        juniNicAgentDataSize,
        juniNicAgentDSConnStatus
    } 
    STATUS  current
    DESCRIPTION
        "A collection of management objects pertaining
        to system management capabilities in SDX. (GW)"
        ::= { juniSdxGwGroups 1 }
END